const arr = [
  {
    name: "文本1",
    parent: null,
    id: 1,
  },
  {
    name: "文本2",
    id: 2,
    parent: 1,
  },
  {
    name: "文本3",
    parent: 2,
    id: 3,
  },
];
// 输出
// [
//   // 树状数据
//   {
//     name: "文本1",
//     id: 1,
//     children: [
//       {
//         name: "文本2",
//         id: 2,
//         children: [
//           {
//             name: "文本3",
//             id: 3,
//           },
//         ],
//       },
//     ],
//   }
// ];

function listToTree(data, pid = null) {
    return data.filter((item) => item.parent === pid).map((item) => {
        const node = {
            name: item.name,
            id: item.id
        };
        node.children = listToTree(data, item.id);
        return node 
    })
}

console.log(listToTree(arr))